(import (except (rnrs base) error)
        (only (guile)
              lambda* λ
              make-parameter
              parameterize))


(define the-id (make-parameter 'abc123))

(the-id)

(define id-haver
  (λ (name)
    (simple-format #t "I am ~a! My id is: ~a\n" name (the-id))))

;; Call without specifying the id, implicitly uses the globally
;; previously defined one.
(id-haver "Albert")

;; Specifying the-id.
(parameterize ([the-id 'def456])
  (id-haver "Albert"))

;; Afterwards the-id is again the same as globally defined.
(id-haver "Albert")
